Ext.ns("AutoParts","AutoParts.Office","AutoParts.Util");//自定义命名空间
AutoParts.Office.CustomerManagerPanel = function(config) {
	AutoParts.Office.CustomerManagerPanel.superclass.constructor.call(this, config);
	// name : String
	// 在记录中标志一个字段的名字。它通常用于引用指定字段，例如，在定义Ext.grid.ColumnModel的dataIndex属性时，要传过去的。
	// mapping : String
	// 当在Ext.data.Reader中创建记录时，如何将json对象中指定属性值映射到此字段。
	
	//***************************地域信息**Start*****************************************//
	var area_recordType = Ext.data.Record.create([
		{
			name : 'areaId',
			mapping : 'areaId',
			type : 'int'
		},{
			name : 'areaName',
			mapping : 'areaName',
			type : 'string'
		}
	]);
	
	var area_columnModel = new Ext.grid.ColumnModel({
		defaultSortable : false,
		columns : [{
			header : "地域编号",
			dataIndex : "areaId",
			width : 80
		},{
			header : "地域名称",
			dataIndex : "areaName",
			width : 120
		}]
	});

	var area_ds = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : 'autoPartsArea_loadAllArea'
		}),
		reader : new Ext.data.JsonReader({
			totalProperty : 'results',//对应JSON数据中results,用其记录总的数据量
			root : 'rows'//对应JSON数据中rows,用来记录每行数据
		},area_recordType)
	});
	
	area_ds.load({
			// params : {
			// start : 0,// =====向后台提供 当前页码
			// limit : 20// =====向后台提供 每页显示记录数
			//		}
	});
	
	// var area_pagingBar = new Ext.PagingToolbar({
	// pageSize : 20,
	// store : area_ds,
	// displayInfo : true,
	// displayMsg : '共{2}条地域数据.当前显示 {0} - {1}条地域数据',
	// emptyMsg : '当前没有地域信息'
	//	});
	
	//***************************地域信息**END*****************************************//

	//***************************客户信息面板属性定义**Start***********************************//
	var customer_RecordType = Ext.data.Record.create([{
		name : 'customerId',
		mapping : 'customerId',
		type : 'int'
	},{
		name : 'customerName',
		mapping : 'customerName',
		type : 'string'
	},{
		name : 'customerShortName',
		mapping : 'customerShortName',
		type : 'string'
	},{
		name : 'businessRelation',
		mapping : 'businessRelation',
		type : 'string'
	},{
		name : 'customerArea',
		mapping : 'customerArea',
		type : 'string'
	},{
		name : 'customerPhone',
		mapping : 'customerPhone',
		type : 'string'
	},{
		name : 'customerAddress',
		mapping : 'customerAddress',
		type : 'string'
	},{
		name : 'bankName',
		mapping : 'bankName',
		type : 'string'
	},{
		name : 'bankNum',
		mapping : 'bankNum',
		type : 'string'
	},{
		name : 'dutyNum',
		mapping : 'dutyNum',
		type : 'string'
	},{
		name : 'acctDate',
		mapping : 'acctDate',
		type : 'string'
	},{
		name : 'customerCategory',
		mapping : 'customerCategory',
		type : 'string'
	},{
		name : 'customerMail',
		mapping : 'customerMail',
		type : 'string'
	},{
		name : 'customerHomePage',
		mapping : 'customerHomePage',
		type : 'string'
	},{
		name : 'customerPost',
		mapping : 'customerPost',
		type : 'string'
	},{
		name : 'linkMan',
		mapping : 'linkMan',
		type : 'string'
	}]);
	
	var customer_columnModel = new Ext.grid.ColumnModel({
		//是否进行默认排序，默认为false
		defaultSortable : false,
		//默认宽度
		defaultWidth : 120,
		columns : [{
			header : "客户编号",
			dataIndex : "customerId"
		},{
			header : "客户名称",
			dataIndex : "customerName"
		},{
			header : "客户简称",
			dataIndex : "customerShortName"
		},{
			header : "业务关系",
			dataIndex : "businessRelation"
		},{
			header : "所属地域",
			dataIndex : "customerArea"
		},{
			header : "联系电话",
			dataIndex : "customerPhone"
		}]
	});
	
	var customer_ds = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : 'autoPartsCustomer_loadAllCustomer'
		}),
		reader : new Ext.data.JsonReader({
			totalProperty : 'results',//对应JSON数据中results,用其记录总的数据量
			root : 'rows'//对应JSON数据中rows,用来记录每行数据
		},customer_RecordType)
	});
	
	customer_ds.load({
		params : {
			start : 0,// =====向后台提供 当前页码
   			limit : 15// =====向后台提供 每页显示记录数
		}
	});
	
	var customer_pagingBar = new Ext.PagingToolbar({
		pageSize : 15,
		store : customer_ds,
		displayInfo : true,
		displayMsg : '共{2}条客户数据.当前显示 {0} - {1}条客户数据',
		emptyMsg : '当前没有客户信息'
	});
	
	//***************************客户信息面板属性定义**END***********************************//
	
	//*******************************新增客户**Start***********************************//
	var add_customer_form = new Ext.FormPanel({
		labelAlign : 'right',
		buttonAlign : 'center',
		bodyStyle : 'padding:5px',
		frame : true,
		labelWidth : 80,
		defaultType : 'textfield',
		defaults : {
			columnWidth : 150,
			anchor : '95%'
		},
		items : [{
			fieldLabel : '客户名称',
			id : 'customerName',
			name : 'customer.customerName',
			allowBlank : false,
			blankText : '[客户姓名]不能为空',
			emptyText : '请填写客户名称'				
		},{
			fieldLabel : '所属地域',
			id : 'customerArea',
			name : 'customer.customerArea',
			valueField : 'areaId',
			displayField : 'areaName',
			xtype : 'combo',
			editable : false,
			mode : 'remote',
			triggerAction : 'all',
			loadingText : '加载中...',
			store : ds_area_select,
			allowBlank : false,
			blankText : '[所属地域]不能为空',
			emptyText : '请选择所属地域'	
		},{
			fieldLabel : '业务关系',
			id : 'businessRelation',
			name : 'customer.businessRelation',
			valueField : 'businessRelation',
			displayField : 'businessRelation',
			xtype : 'combo',
			editable : false,
			mode : 'local',
			triggerAction : 'all',
			store : new Ext.data.SimpleStore({
				fields : ['businessRelation', 'businessRelation'],
				data : [['单向','单向'],['双向','双向']]
			}),
			allowBlank : false,
			blankText : '[业务关系]不能为空',
			emptyText : '请选择业务关系'	
		},{
			fieldLabel : '联系电话',
			id : 'customerPhone',
			name : 'customer.customerPhone',
			allowBlank : false,
			blankText : '[联系电话]不能为空',
			emptyText : '请填写联系电话'
		},{
			fieldLabel : '客户地址',
			id : 'customerAddress',
			name : 'customer.customerAddress',
			allowBlank : false,
			blankText : '[客户地址]不能为空',
			emptyText : '请填写客户地址'
		},{
			fieldLabel : '联  系  人',
			id : 'linkMan',
			name : 'customer.linkMan',
			allowBlank : false,
			blankText : '[联 系 人]不能为空',
			emptyText : '请填写联系人'
		},{
			fieldLabel : '开户银行',
			id : 'bankName',
			name : 'customer.bankName',
			valueField : 'bankId',
			displayField : 'bankName',
			xtype : 'combo',
			editable : false,
			mode : 'remote',
			triggerAction : 'all',
			loadingText : '加载中...',
			store : ds_bank_select,
			emptyText : '请选择开户银行'	
		},{
			fieldLabel : '银行账号',
			id : 'bankNum',
			name : 'customer.bankNum'
		},{
			fieldLabel : '工商税号',
			id : 'dutyNum',
			name : 'customer.dutyNum'
		},{
			fieldLabel : '对帐时间',
			id : 'acctDate',
			name : 'customer.acctDate'
		},{
			fieldLabel : '客户类别',
			id : 'customerCategory',
			name : 'customer.customerCategory'
		},{
			fieldLabel : '客户邮箱',
			id : 'customerMail',
			name : 'customer.customerMail'
		},{
			fieldLabel : '客户网站',
			id : 'customerHomePage',
			name : 'customer.customerHomePage'
		},{
			fieldLabel : '邮政编码',
			id : 'customerPost',
			name : 'customer.customerPost'
		}],
		buttons : [{
			text : '提交',
			handler : function(){
				
			}
		},{
			text : '重置',
			handler : function(){
				
			}
		},{
			text : '取消',
			handler : function(){
			
			}
		}]
	});
	
	//新增客户窗口
	var add_customer_window = new Ext.Window({
		title : '新增客户窗口',
		width : 320,
		autoHeight : true,
		pageX : 400, 
		pageY : 80,
		closeAction : 'hide', //枚举值为：close(默认值)，当点击关闭后，关闭window窗口  hide,关闭后，只是hidden窗口
		listeners : {
			'hide' : function(){
			}
		},
		items : [add_customer_form]
	});
	
	//新增客户按钮
	var add_customer_btn = new Ext.Button({
		text : '新增客户',
		iconCls : 'icon-add',
		handler : function(){
			add_customer_window.show();
		}
	});
	//*************************************新增客户**END**************************************//
	
	//**************************************************************************************//
	var customer_grid = new Ext.grid.GridPanel({
		title : '客户列表',
		autoWidth : true,
		height : 440,
		stripeRows : true,
		columnLines : true,
		enableColumnMove : false,//是否允许拖放列，默认为true
		loadMask : {//是否在加载数据时显示遮罩效果，默认为false
			msg : '正在加载客户信息,请稍等...'
		},
		tbar :[add_customer_btn],
		cm : customer_columnModel,//表格的列模式，渲染表格时必须设置该配置项
		ds : customer_ds,//数据源
		sm : new Ext.grid.RowSelectionModel({
			singleSelect : true
		}),//表格的选择模式，默认为Ext.grid.RowSelectionModel
		bbar : customer_pagingBar
	});
	
	var area_grid = new Ext.grid.GridPanel({
		title : '地域列表',
		width : '224',
		height : 440,
		stripeRows : true,
		columnLines : true,
		enableColumnMove : false,
		loadMask : {
			msg : '正在加载地域信息,请稍等...'
		},
		cm : area_columnModel,
		ds : area_ds,
		sm : new Ext.grid.RowSelectionModel({
			singleSelect : true
		})
	});
	
	this.add(customer_grid);
}

Ext.extend(AutoParts.Office.CustomerManagerPanel, Ext.Panel, {});